package br.com.werp.regras.pessoa.integracao;

import br.com.werp.regras.geral.ErroPadrao;
import br.com.werp.regras.geral.integracao.MasterDAO;
import br.com.werp.regras.geral.util.Constantes;
import br.com.werp.regras.geral.util.Util;
import br.com.werp.regras.geral.vos.pessoa.PessoaBancoVO;
import br.com.werp.regras.geral.vos.tabelas.Banco;
import br.com.werp.regras.geral.vos.tesouraria.BancoVO;

import java.sql.Connection;
import java.sql.SQLException;

import java.util.List;


/**
 * @author Sobreira
 * Criado em 31/01/2005
 *
 */
public class BancoDAO extends MasterDAO {
    private static BancoDAO bancoDAO;

    private BancoDAO(String banco) throws Exception {
        super(banco);
    }

    public static BancoDAO getBancoDAO() throws Exception {
        if (bancoDAO == null) {
            bancoDAO = new BancoDAO(Constantes.BANCO);
        }

        return bancoDAO;
    }

    public void inserirBanco(Banco banco, Object object)
        throws ErroPadrao, SQLException, Exception {
        inserirVO(validarTransacao(object), banco);
    }

    /**
     * @return
     * @throws Exception
     */
    public List obterBancos(PessoaBancoVO pessoaBancoVO)
        throws Exception {
        Connection connection = getConexao();
        String tabelas = "pessoa,juridica,banco";
        String where = "and pess_id=juri_pessoa and pess_id=banc_pessoa";

        try {
        	
            return pesquisarVO(connection, pessoaBancoVO, where, tabelas,
                pessoaBancoVO.EXCLUIDAS);
        } finally {
            liberaConeccao(connection);
        }
    }

    public void atualizarBanco(Object key, Banco banco)
        throws ErroPadrao, SQLException, Exception {
        atualizarVO(validarTransacao(key), banco, new String[] { "banc_pessoa" });
    }
}
